
/**

 * Java逻辑运算符:

 * 与：当且仅当结果都为true的时候最后结果成为true，反之则为false

 * a && b

 * 短路与：&&

 * 逻辑与：&

 * &&和&的区别：

 * 使用&&时，如果第一个表达式为false，则不会对第二个表达式进行计算，直接返回false

 * 使用&时，如果第一个表达式为false，则对第二个表达式进行计算，返回false

 * 或：当且仅当结果有一个为true的时候，最后结果为true，反之为false

 * 短路或：||

 * 逻辑或：|

 * 非：！
 */
public class Operator_03{
    public static void main(String[] args){
        // 定义布尔值变量
        boolean bool1 = true;
        boolean bool2 = true;
        boolean bool3 = false;

        // 短路与运算  &&
        System.out.println(bool1 && bool2);
        System.out.println(bool1 && bool2 && bool3);

        System.out.println(bool1 & bool2);

        int num = 10;
        System.out.println((num < 2) && (++num < 20));
        System.out.println(num);
        System.out.println((num < 2) & (++num < 20));
        System.out.println(num);

        // 或运算
        // 定义布尔值变量
        boolean bool4 = true;
        boolean bool5 = true;
        boolean bool6 = false;
        boolean bool7 = false;

        System.out.println("----------------------------------");
        System.out.println(bool4 || bool5);
        System.out.println(bool4 || bool5 || bool6);
        System.out.println(bool6 || bool7);

        System.out.println("-------------------------------------");
        System.out.println(! bool6);

    }
}